package top.buluoluo.productservice.service;

import top.buluoluo.commoncore.domain.response.Result;
import top.buluoluo.productservice.dto.request.SpuPageRequest;
import top.buluoluo.productservice.dto.response.*;
import top.buluoluo.productservice.dto.result.PageResult;

import java.util.List;

public interface ProductService {
    //    获取所有商品分类
    Result<List<CategoryTreeDTO>> getAllCategories();

    //    获取商品分类id关联的品牌及其子分类关联的品牌
    Result<List<BrandDTO>> getBrandsByCategoryId(Long categoryId);

    //    根据商品种类id，品牌id，分页参数进行分页查询spu表
    Result<PageResult<SpuDTO>> getSpuPage(SpuPageRequest spuPageRequest);
    //    根据spuId查询sku表，以列表形式返回
    Result<List<SkuDTO>> getSkuBySpuId(Long spuId);
    //    根据skuId查询sku表
    Result<SkuDTO> getSkuById(Long skuId);
    //    根据spuId查询spu表
    Result<SpuDTO> getSpuBySpuId(Long spuId);
    //    根据折扣ID查询折扣信息
    Result<DiscountDTO> getDiscountById(Long discountId);
    //    根据折扣判断折扣信息是否合法
    Result<Boolean> checkDiscountValid(Long discountId);
}
